package com.ruoyi.rsikManage.Alarm.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 报警信息对象 t_alarms
 *
 * @author sxygsj
 * @date 2024-12-26
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TBaseAlarmsRequest extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long idId;

    /** 直接访问的url */
    @Excel(name = "直接访问的url")
    private String httpUrl2;

    /** 单位编号 */
    @Excel(name = "单位编号")
    private String unitCode;

    /** 报警级别 5:紧急 4:严重 3:警告 2:次要 1:提示 */
    @Excel(name = "报警级别 5:紧急 4:严重 3:警告 2:次要 1:提示")
    private String alarmLevel;

    /** 报警时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报警时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date alarmTime;

    /** 报警类型名称 */
    @Excel(name = "报警类型名称")
    private String alarmTypeName;

    /** 设备ID */
    @Excel(name = "设备ID")
    private String deviceId;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 报警类型 */
    @Excel(name = "报警类型")
    private String alarmType;

    /** 组织索引 */
    @Excel(name = "组织索引")
    private String orgIndex;

    /** 组织名称 */
    @Excel(name = "组织名称")
    private String orgName;

    /** ID */
    private Long id;

    /** 事件类型 */
    @Excel(name = "事件类型")
    private String eventType;

    /** 事件ID */
    @Excel(name = "事件ID")
    private String eventId;

    /** 审批状态 */
    @Excel(name = "审批状态")
    private String approve;

    /** 审批意见 1-正报 2-误报 */
    @Excel(name = "审批意见 1-正报 2-误报")
    private String opinion;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handleTime;

    /** 视频时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "视频时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date videoTime;

    /** 图片URL */
    @Excel(name = "图片URL")
    private String pictureUrl;

    /** 报警地点 */
    @Excel(name = "报警地点")
    private String alarmLocation;

    /** 解除报警时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "解除报警时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contactAlarmTime;

    /** 处理开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date processingStartTime;

    /** 处理预计结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理预计结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date processingEndTime;

    /** 报警设备 */
    @Excel(name = "报警设备")
    private String alarmDevice;

    /** 报警提示方式 */
    @Excel(name = "报警提示方式")
    private String alarmPromptMode;

    /** 报警提示音 */
    @Excel(name = "报警提示音")
    private String alarmTone;

    /** 报警原因 */
    @Excel(name = "报警原因")
    private String alarmReason;

    /** 报警处置信息 */
    @Excel(name = "报警处置信息")
    private String alarmDisposalInfo;

    /** 处置反馈信息 */
    @Excel(name = "处置反馈信息")
    private String disposalFeedbackInfo;

    /** 删除标志 */
    @Excel(name = "删除标志")
    private Integer delFlag;

    /** 处理状态 1-未处理 2-处理中 3-已处理 */
    @Excel(name = "处理状态 1-未处理 2-处理中 3-已处理")
    private String handelStatus;

    /** 报警发送标记 0-未发送 1-已发送 */
    @Excel(name = "报警发送标记 0-未发送 1-已发送")
    private Integer alarmSendingMark;

    /** base64编码图片 */
    @Excel(name = "base64编码图片")
    private String httpUrl;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long httpUrlBase;

    /** 报警回放地址 */
    @Excel(name = "报警回放地址")
    private String playBackUrl;

    /** 是否报备 0-未报备 1-已报备 */
    @Excel(name = "是否报备 0-未报备 1-已报备")
    private String filter;

    /** 状态开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "状态开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date statusStartDatetime;

    /** 状态结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "状态结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date statusEndDatetime;

    /** 状态持续时间 秒数 */
    @Excel(name = "状态持续时间 秒数")
    private Long durationSeconds;

    /** 状态持续时间 */
    @Excel(name = "状态持续时间")
    private String durationSecondsStr;


    /** 煤矿编码数组 */
    @Excel(name = "煤矿编码数组")
    private List<Long> unitCodes;

    /** 统计类型 */
    @Excel(name = "统计类型")
    private String countType;


}
